18 Jun 2018

racket 7.0.0.2 is out

作者:Syntacticlosure

标签:Racket

Racket 7.0.0.2版本最令人激动的功能是local-expand的增强,多了一个#:extend-stop-ids?选项,这意味着alexis在这篇文章 中所想要解决的问题不复存在,我们可以通过一段代码来观察变化:

more →

17 Jun 2018

Continuation Marks的简单实现

作者:qww6

标签:Racket, Continuation

背景

Continuation Marks——Racket的核心特性之一,虽然直接使用它的人也许很少,但是与其衍生物打交道却是很常见的事情。Continuation Marks是一种通用的在调用链上记录信息的方法,其用途非常广泛,Racket中很多想得到的、想不到的功能,都是使用Continuation Marks实现的,这里不作赘述,有兴趣的朋友可以参阅Racket源码。

more →

14 Jun 2018

Bindings as Sets of Scopes

作者:Syntacticlosure

标签:Macro, Racket

Introduction

Racket的宏系统的实现被称为Bindings as Sets of Scopes,每个identifier拥有一个代表当前作用域的集合。
举例说明:

more →